/*
 * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne
 * and others contributors as indicated 
 * by the @authors tag. All rights reserved. 
 * See the copyright.txt in the distribution for a
 * full listing of individual contributors. 
 * This copyrighted material is made available to anyone wishing to use,
 * modify, copy, or redistribute it subject to the terms and conditions
 * of the GNU Lesser General Public License, v. 2.1.
 * This program is distributed in the hope that it will be useful, but WITHOUT A 
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
 * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public License,
 * v.2.1 along with this distribution; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
 * MA  02110-1301, USA.
 * 
 * (C) 1990-2008,
 */
 /*
 * Copyright (C) 1994, 1995, 1996, 1997
 *
 * Department of Computing Science,
 * The University,
 * Newcastle upon Tyne,
 * UK.
 *
 * $Id: HashedList.n,v 1.4 1997/10/08 09:09:42 nmcl Exp $ 
 */

#include <ClassLib/thread.h>

#if defined(NO_INLINES) && !defined(HASHEDLIST_CC_)

extern ostream& operator<< (ostream& strm, const HashedList& hl);

#else

#ifndef NO_INLINES
#  define INLINEF inline
#else
#  define INLINEF
#endif


INLINEF ostream& operator<< (ostream& strm, const HashedList& hl)
{
    return hl.print(strm);
}

INLINEF int HashedList::timeToKey (double time) const
{
    int toReturn = ((long) time)%listSize;

    if (toReturn < 0)
    {
    	cerr << "HashedList::timeToKey ( " << time << " ) gives " << toReturn << endl;
	Thread::Exit(-1);
    }
    else
	return toReturn;
}

#ifdef INLINEF
#  undef INLINEF
#endif

#endif
